---
title: 相关方法
description: 反射的相关方法
---
## java.lang.Class

* static Class forName(String className)  返回一个 Class 对象， 表示名为 className 的类。
* Constructor getConstructor(Class... parameterTypes)  生成一个对象，描述指定参数类型的构造器
* Field[] getFields()  返回一个包含 Field 对象的数组，这些对象对应这个类或其超类的公共字段。
* Field[] getDeclaredFields() 返回一个包含 Field 对象的数组，这些对象对应这个类的全部字段。如果类中没有这样的字段，或者如果 Class 对象表示基本类型或数组类型，则这些方法将返回一个长度为 0 的数组。
* Method[] getMethods() 返回一个包含 Method 对象的数组：getMethods 将返回所有的公共方法，包括从超类继承的公共方法。
* Method[] getDeclaredMethods()  返回这个类或接口的全部方法，但不包括由超类继承的方法。
* Constructor[] getConstructors()  返回一个包含 Constructor 对象的数组，包含所有的公共构造器。
* Constructor[] getDeclaredConstructor()  包含该类全部的构造器。
* isInstance() 如果这个 Class 对象描述一个 interface，则返回 true。
* isEnum()
* isRecord()
* String getPackageName() 得到包含这个类型的包的包名，如果这个类型是一个数组类型，则返回元素类型的包，或者如果这个类型是一个基本类型，则返回 java.lang。

* boolean isArray() 表示如果这个对象表示一个数组类型，则返回 true
* `Class<?>` getComponentType()
* `Class<?>` componentType() 如果这个对象表示一个数组类型，则返回描述元素类型的 Class，否则，返回 null。
* `Class<?>` arrayType() 返回描述数组类型的 Class （这个数组的元素类型由这个对象表示）

## java.lang.reflect.Field、Method、Constructor

* Class getDeclaringClass()  返回一个 Class 对象，表示定义了这个构造器、方法或字段的类
* Class[] getExceptionTypes()  在 Constructor 和 Method 类型中使用，返回一个 Class 对象数组，其中各个对象表示这个方法所抛出异常的类型。
* int getModifiers() 返回一个整数，描述这个构造器、方法或字段的修饰符。使用 Modifier 类中的方法来分析这个返回值。
* String getName() 返回一个表示构造器名、方法名或字段名的字符串。
* Class[] getParameterTypes() (in Constructor and Method classes)  返回一个 Class 对象数组，其中各个对象表示参数的类型。
* Class getReturnType()  (in Method classes) 返回一个表示返回类型的 Class 对象

## java.lang.reflect.Modifier
* static String toString(int modifiers) 返回一个字符串，包含 modifiers 中设置的的二进制位所对应的修饰符。
* static boolean isAbstract(int modifiers)
* static boolean isFinal(int modifiers)
* static boolean isInterface(int modifiers)
* static boolean isNative(int modifiers)
* static boolean isPrivate(int modifiers)
* static boolean isProtected(int modifiers)
* static boolean isPublic(int modifiers)
* static boolean isStatic(int modifiers)
* static boolean isStrict(int modifiers)
* static boolean isSynchronized(int modifiers)
* static boolean isVolatile(int modifiers)




## java.lang.reflect.Constructor

* Object newInstance(Object... params)  将 params 传递到构造器，来构造这个构造器声明类的一个新实例。

## java.lang.Throwable
* void printStackTrace() 将 Throwable 对象和栈轨迹打印到标准错误流。

## java.lang.reflect.AccessibleObject
* void setAccessible(boolean flag)  设置或取消这个可访问对象的可访问标识，如果拒绝访问则抛出一个 IllegalAccessException 异常。
* boolean trySetAccessible()  为这个可访问你对象设置可访问标志，如果拒绝访问则返回false。
* boolean canAccess(Object obj)  检查调用者是否可以通过这个字段、方法或构造器对象访问 obj 。对于静态字段或方法传入 null ，另外对于构造器也传入 null。
* static void setAccessible(AccessibleObject[] array,boolean flag)  这是一个遍历方法，用于设置一个对象数组的可访问标识。

## java.lang.Class

* Field getField(String name)  得到指定名的公共字段。
* Field getFields() 得到所有字段的一个数组。
* Field getDeclaredFields(String name)
* Field[] getDeclaredFields()

## java.lang.reflect.Field
* Object get(Object obj) 返回 Object 对象中用这个 Field 对象描述的字段的值
* void set(Object obj,Object newValue) 将 obj 对象中这个 Field 对象描述的字段设置为 一个新值。



## java.lang.reflect.Array
* static Object get(Object array,int index)
* static xxx getXxx(Object array,int index) (xxx 是 boolean、byte、char、double、float、int、long 或 short 中的一种基本类型) 这些方法将返回给定数组中存储在给定索引位置上的值。
* static void set(Object array,int index,Object newValue)
* static void setXxx(Object array,int index,Object newValue)
* static int getLength(Object array)
* static Object newInstance(Class componentType,int length)
* static Object newInstance(Class componentType, int[] lengths)



